(1) Field of the Invention
The present invention relates to a three-dimensional graphics processing apparatus which carries out a drawing processing of a polygonal object.
(2) Description of the Related Art
A three-dimensional (3D) graphics processing apparatus which carries out a drawing processing of a polygonal object (hereinafter called a polygon) is known.
In the 3D graphics processing apparatus, polygon data from a CPU is input to a geometric transformation unit. The geometric transformation unit performs various geometric transformations for the input polygon data, such as a modeling transformation, a viewpoint transformation and a perspective projection. As a result of such transformations, the geometric transformation unit supplies polygon data, including vertex data (or vertex coordinates and a vertex color value) of the polygon on a screen coordinate system, to a drawing processor. The drawing processor performs a drawing processing for the polygon data from the geometric transformation unit, and produces a grid of pixel data defining an image of the polygon on a CRT screen as a result of the drawing processing. The pixel data produced by the drawing processor is stored in a frame memory. Hence, the image of the polygon is displayed on the screen of a CRT (cathode ray tube) monitor based on the pixel data stored in the frame memory.
Japanese Laid-Open Patent Application No. 7-325933 discloses a 3D graphics processing device which is designed for speedy drawing processing.
FIG. 21 shows a conceivable drawing processor 99 which is conceived that it performs a drawing processing similar to a drawing processing performed by a drawing processor of the 3D graphics processing device of the above-mentioned publication.
As shown in FIG. 21, in the drawing processor 99, the polygon data from the geometric transformation unit (not shown in FIG. 21) is supplied to a vertical parameter computation unit (V/PC) 100. As described above, the geometric transformation unit produces the polygon data including vertex data (or vertex coordinates and a vertex color value) of a polygon on a screen coordinate system, obtained as a result of the geometric transformations. The vertical parameter computation unit 100 calculates vertical parameters, which are used by a digital differential analyzer (hereinafter called DDA) algorithm with respect to a vertical direction of the polygon, based on the polygon data.
The vertical parameters and the polygon data are supplied to a vertical DDA unit (V/DDA) 101 by the vertical parameter computation unit 100. The vertical DDA unit 101 performs a vertical DDA processing of the polygon data with respect to the vertical direction of the polygon, based on the vertical parameters from the vertical parameter computation unit 100. As a result of the vertical DDA processing, the vertical DDA unit 101 produces exterior endpoint data (or endpoint coordinates and an endpoint color value) indicating intersection points between scan lines and the polygon right and left edges.
The exterior endpoint data are supplied to a horizontal parameter computation unit (H/PC) 102 by the vertical DDA unit 101. The horizontal parameter computation unit 102 calculates horizontal parameters, used by the DDA processing with respect to a horizontal direction of the polygon, based on the exterior endpoint data from the vertical DDA unit 101.
The horizontal parameters and the polygon data are supplied to a horizontal DDA unit (H/DDA) 103 by the horizontal parameter computation unit 102. The horizontal DDA unit 103 performs a horizontal DDA processing of the polygon data with respect to the horizontal direction of the polygon, based on the horizontal parameters from the horizontal parameter computation unit 102. As a result of the horizontal DDA processing, the horizontal DDA unit 103 produces a grid of pixel data defining an image of the polygon on the CRT screen. Specifically, the horizontal DDA unit 103 produces intermediate point data indicating intermediate-point coordinates and an intermediate-point color value for each of intermediate dots between the endpoints on the polygon right edge and on the polygon left edge, based on the horizontal parameters. Then, the pixel data, including the endpoint data produced by the vertical DDA unit 101 and the intermediate point data produced by the horizontal DDA unit 103, is temporarily stored in a pixel buffer 104.
After the temporary storing of the pixel data in the pixel buffer 104 is performed, the pixel data is supplied from the drawing processor 99 to the frame memory (not shown in FIG. 21). Hence, the image of the polygon is displayed on the screen of the CRT monitor (not shown) based on the pixel data stored in the frame memory. The entire operation of the drawing processor of FIG. 21 is controlled by a control unit (not shown).
FIG. 22 shows an essential part of the conceivable drawing processor 99 of FIG. 21. In FIG. 22, there is shown a configuration of the essential part of the drawing processor 99 which is conceived that it is similar to a configuration of the drawing processor of the 3D graphics processing device of the above-mentioned publication.
As shown in FIG. 22, the vertical parameter computation unit (V/PC) 100 includes a storing part 115 having various registers which store the polygon data supplied by the geometric transformation unit (not shown). The polygon data includes vertex data of the polygon on the screen coordinate system obtained as a result of the geometric transformations. Generally, the vertex data for one of vertices of a polygon is constituted by an x-coordinate (SX) on the screen coordinate system, a y-coordinate (SY) on the screen coordinate system, a z-value (SZ) and a color value (CL). The z-value (SZ) represents a typical distance of the vertex from a viewpoint of the polygon. The color value (CL) indicates an intensity of a color of the vertex.
In the configuration of FIG. 22, an example of the drawing processing of the polygon in the form of a triangle ABC as shown in FIG. 23A is taken into consideration. It is supposed that the vertex data for a vertex A of the triangle ABC is constituted by (SX0, SY0, SZ0, CL0), the vertex data for a vertex B of the triangle ABC is constituted by (SX1, SY1, SZ1, CL1), and the vertex data for a vertex C of the triangle ABC is constituted by (SX2, SY2, SZ2, CL2). In the configuration of FIG. 22, the polygon data items (SX0, SY0, SZ0, CL0), (SX1, SY1, SZ1, CL1) and (SX2, SY2, SZ2, CL2) are stored in the registers of the storing part 115.
The vertical parameter computation unit 100 includes an arithmetic unit 116 which calculates a plurality of differential values based on the polygon data items stored in the storing part 115. In the drawing processing of FIG. 23A, the plurality of differential values are calculated by the arithmetic unit 116 as follows:
dSX0Y = (SX1-SX0)/(SY1-SY0) dSX1Y = (SX2-SX1)/(SY2-SY1) dSX2Y = (SX2-SX0)/(SY2-SY0) dSZ0Y = (SZ1-SZ0)/(SY1-SY0) dSZ1Y = (SZ2-SZ1)/(SY2-SY1) dSZ2Y = (SZ2-SZ0)/(SY2-SY0) dCL0Y = (CL1-CL0)/(SY1-SY0) dCL1Y = (CL2-CL1)/(SY2-SY1) dCL2Y = (CL2-CL0)/(SY2-SY0) (1)
For example, the differential value dSX0Y indicates a gradient of the x-coordinate of the polygon left edge AB with respect to the y-coordinate thereof, as is apparent from the first one of the above formulas (1).
As shown in FIG. 22, the vertical parameter computation unit 100 includes a vertical parameter storing part 117. The differential values dSX0Y, dSX1Y, dSX2Y, dSZ0Y, dSZ1Y, dSZ2Y, dCL0Y, dCL1Y and dCL2Y produced by the arithmetic unit 116 in accordance with the above formulas (1) are stored in registers of the vertical parameter storing part 117. These differential values are called the vertical parameters.
The vertical DDA unit 101 includes a storing part 120 having various registers which store the polygon data items and the differential values from the vertical parameter computation unit 100. The registers of the storing part 120 correspond to the registers of the vertical parameter computation unit 100, respectively.
In the vertical DDA unit 101, a DDA operation unit 121, left-edge operation units 122 and right-edge operation units 123 produce the exterior endpoint data, indicating the intersection points between the scan lines and the polygon right and left edges, based on the polygon data items and the differential values stored in the storing part 120. Specifically, the DDA operation unit 121 produces a y-coordinate (DSY) of the endpoints for each scan line.
The left-edge operation units 122 produce an x-coordinate (DSX) of each endpoint on the left edge, a z-value (DSZ) of the endpoint on the left edge, and a color value (DCL) of the endpoint on the left edge. The right-edge operation units 123 produce an x-coordinate (DSX) of each endpoint on the right edge, a z-value (DSZ) of the endpoint on the right edge, and a color value (DCL) of the endpoint on the right, edge.
For example, when the drawing processing for the polygon data with respect to a line L indicated in FIG. 23A is performed, the vertical DDA unit 101 produces the exterior endpoint data indicating the intersection points (indicated by white dots A and B in FIG. 23A) between the line L and the polygon left and right edges.
The horizontal parameter computation unit 102 receives the endpoint data (DSY, DSX, DSZ, DCL) of the endpoint on the left edge and the endpoint data (DSX, DSZ, DCL) on the right edge from the vertical DDA unit 101. The horizontal parameter computation unit 102 includes a storing part 130 having various registers which store the above data items from the vertical DDA unit 101 as (SY, SXL, SZL, CLL, SXR, SZR, CLR).
In the horizontal parameter computation unit 102, an arithmetic unit 132 calculates a plurality of differential values based on the data items stored in the storing part 130. In the drawing processing of FIG. 23A, the plurality of differential values are calculated by the arithmetic unit 132 in accordance with the following formulas:
 dSZX = (SZR-SZL)/(SXR-SXL) dCLX = (CLR-CLL)/(SXR-SXL) (2)
As shown in FIG. 22, the horizontal parameter computation unit 102 includes a horizontal parameter storing part 133. The differential values dSZX and dCLX produced by the arithmetic unit 132 in accordance with the above formulas (2) are stored in registers of the horizontal parameter storing part 133. These differential values are called the horizontal parameters.
The horizontal DDA unit 103 includes a storing part 140 having various registers which store the data items (SY, SXL, SZL, CLL, SXR) and the differential values (dSZX, dCLX) from the horizontal parameter computation unit 102. The registers of the storing part 140 correspond to the registers of the horizontal parameter computation unit 102, respectively.
In the horizontal DDA unit 103, a DDA operation unit 141, a DDA operation unit 142 and a DDA operation unit 143 produce a grid of pixel data defining an image of the polygon on the CRT screen, based on the data items and the horizontal parameters stored in the storing part 140. Specifically, the DDA operation unit 141 increments an x-coordinate (DSX) of an intermediate point starting from the x-coordinate (SXL) of the endpoint on the left edge and ending at the x-coordinate (SXR) of the endpoint on the right edge. The DDA operation unit 142 produces a z-value (DSZ) of the intermediate point when the x-coordinate (DSX) is incremented. The DDA operation unit, 143 produces a color value (DCL) of the intermediate point when the x-coordinate (DSX) is incremented.
For example, when the drawing processing for dots with respect to a line L indicated in FIG. 23B is performed, the horizontal DDA unit 103 produces pixel data (DSX, DSZ, DCL) of each of intermediate points on the line L W between the endpoints indicated by dots A and B in FIG. 23B. By repeating the above-mentioned procedures for all the scan lines, the pixel data (SY, DSX, DSZ, DCL), including the endpoint data from the vertical DDA unit 101 and the intermediate point data from the horizontal DDA unit 103, is produced for each dot of the image.
The pixel data produced by the horizontal DDA unit 103 is temporarily stored in the pixel buffer 104. After the temporary storing of the pixel data in the pixel buffer 104 is performed, the pixel data is supplied to the frame memory. Hence, the image of the polygon is displayed on the screen of the CRT monitor (not shown) based on the pixel data stored in the frame memory.
In the case of the above-described drawing processor 99, the left edge or right edge of a polygon is described by only the endpoint data from the vertical DDA unit 101. As shown in FIG. 24A, when the polygon in the form of a triangle having one edge slightly inclined to the horizontal direction is dealt with by the drawing processor 99, the aliasing or jaggies of a corresponding image for the slightly-inclined edge may occur. In addition, as shown in FIG. 24B, when the polygon data in the form of a triangle having a sharp-pointed vertex is dealt with by the drawing processor 99, the aliasing or jaggies of a corresponding image around the sharp-pointed vertex may occur. Therefore, when an image of a polygon is displayed on the CRT screen based on the pixel data produced by the drawing processor 99, the aliasing of a corresponding image may occur in some cases.
Further, Japanese Laid-Open Patent Application No.8-55225 discloses a 3D graphics processing device which utilizes a Bresenham algorithm in performing the drawing processing so as to avoid the aliasing of such an image obtained from the pixel data produced by the drawing processor of FIG. 21.
FIG. 25 shows a conceivable drawing processor 106 which is conceived that it performs a drawing processing similar to a drawing processing performed by a drawing processor of the 3D graphics processing device of the above-mentioned publication.
As shown in FIG. 25, in the drawing processor 106, the polygon data from the geometric transformation unit (not shown in FIG. 25) is supplied to a parameter computation unit (PC) 107. The polygon data includes vertex data (or vertex coordinates and a vertex color value) of a polygon on a screen coordinate system, obtained as a result of the geometric transformations. The parameter computation unit 107 calculates parameters, used by a DDA processing according to the Bresenham algorithm, based on the polygon data.
The parameters and the polygon data are supplied to a vertical DDA unit (V/DDA) 108 by the parameter computation unit 107. The vertical DDA unit 108 performs a vertical DDA processing according to the Bresenham algorithm, based on the parameters and the polygon data from the parameter computation unit 107. As a result of the vertical DDA processing, the vertical DDA unit 108 produces leftmost endpoint data indicating a leftmost intersection point between the scan line and the polygon left edge, and rightmost endpoint data indicating a rightmost intersection point between the scan line and the polygon right edge.
The endpoint data, the parameters and the polygon data are supplied to a horizontal DDA unit (H/DDA) 109 by the vertical DDA unit 108. The horizontal DDA unit 109 performs a DDA processing with respect to each of intermediate dots between the leftmost endpoint and the rightmost endpoint based on the data including the endpoint data, the parameters and the polygon data from the vertical DDA unit 108. As a result of the DDA processing, the horizontal DDA unit 109 produces a grid of pixel data defining an image of the polygon on the CRT screen. Then, the pixel data, including the endpoint data produced by the vertical DDA unit 108 and the intermediate point data produced by the horizontal DDA unit 109, is temporarily stored in a pixel buffer 110.
After the temporary storing of the pixel data in the pixel buffer 110 is performed, the pixel data is supplied from the drawing processor 106 to the frame memory (not shown in FIG. 25). Hence, the image of the polygon is displayed on the screen of the CRT monitor based on the pixel data stored in the frame memory. The entire operation of the drawing processor 106 of FIG. 25 is controlled by a control unit (not shown).
FIG. 26 shows an essential part of the drawing processor 106 of FIG. 25. In FIG. 26, there is shown a configuration of the essential part of the drawing processor 106 which is conceived that it is similar to a configuration of the drawing processor of the 3D graphics processing device of the above-mentioned publication.
As shown in FIG. 26, the parameter computation unit (PC) 107 includes a storing part 150 having various registers which store the polygon data supplied by the geometric transformation unit (not shown). The polygon data includes vertex data of the polygon on the screen coordinate system obtained as a result of the geometric transformations.
In the configuration of FIG. 26, an example of the drawing processing of the polygon in the form of a triangle ABC as shown in FIG. 27A is taken into consideration. It is supposed that the vertex data for a vertex A of the triangle ABC is constituted by (SX0, SY0, SZ0, CL0), the vertex data for a vertex B of the triangle ABC is constituted by (SX1, SY1, SZ1, CL1), and the vertex data for a vertex C of the triangle ABC is constituted by (SX2, SY2, SZ2, CL2). In the configuration of FIG. 26, the polygon data items (SX0, SY0, SZ0, CL0), (SX1, SY1, SZ1, CL1) and (SX2, SY2, SZ2, CL2) are stored in the registers of the storing part 150.
The parameter computation unit 107 includes an arithmetic unit 151 which calculates a plurality of differential values based on the polygon data items stored in the storing part 150. In the drawing processing of FIG. 27A, the plurality of differential values are calculated by the arithmetic unit 151 in accordance with the following formulas:
 dSZX = {(SZ2-SZ0) .times. (SY1-SY2) - (SZ1-SZ2) .times. (SY2-SY0)}/ {(SX2-SX0) .times. (SY1-SY2) - (SX1-SX2) .times. (SY2-SY0)} dSZY = {(SZ1-SZ2) .times. (SX2-SX0) - (SZ2-SZ0) .times. (SX1-SX2)}/ {(SX2-SX0) .times. (SY1-SY2) - (SX1-SX2) .times. (SY2-SY0)} dCLX = {(CL2-CL0) .times. (SY1-SY2) - (CL1-CL2) .times. (SY2-SY0)}/ {(SX2-SX0) .times. (SY1-SY2) - (SX1-SX2) .times. (SY2-SY0)} dCLY = {(CL1-CL2) .times. (SX2-SX0) - (CL2-CL0) .times. (SX1-SX2)}/ {(SX2-SX0) .times. (SY1-SY2) - (SX1-SX2) .times. (SY2-SY0)} (3)
Further, the arithmetic unit 151 calculates error values ERR0, ERR1 and ERR2, used by the Bresenham algorithm for the edges AB, BC and AC of the polygon, in accordance with the following formulas:
 if (abs(SX0-SX1) &gt; abs(SY0-SY1)) ERR0 = abs(SY0-SY1)/abs(SX0-SX1) else ERR0 = abs(SX0-SX1)/abs(SY0-SY1) if (abs(SX1-SX2) &gt; abs(SY1-SY2)) ERR0 = abs(SY1-SY2)/abs(SX1-SX2) else ERR0 = abs(SX1-SX2)/abs(SY1-SY2) if (abs(SX0-SX2) &gt; abs(SY0-SY2)) ERR0 = abs(SY0-SY2)/abs(SX0-SX2) else ERR0 = abs(SX0-SX2)/abs(SY0-SY2) where abs() denotes the absolute value of the term inside the parentheses (4)
As shown in FIG. 26, the parameter computation unit 107 includes a parameter storing part 152. The differential values dSZX, dSZY, dCLX and dCLY produced in accordance with the above formulas (3) and the error values ERR0, ERR1 and ERR2 produced in accordance with this above formulas (4) are stored in registers of the parameter storing part 152. These differential values are called the parameters.
The arithmetic unit 151 calculates a gradient parameter of the y-coordinate of each of the polygon edges AB, BC and AC with respect to the x-coordinate thereof, and chooses one of x-major and y-major for each of the gradient parameters of the polygon edges AB, BC and AC. As shown in FIG. 5A, when dx&gt;dy, the x-major is chosen for the related edge by the arithmetic unit 151. As shown in FIG. 5B, when dx&lt;dy, the y-major is chosen for the related edge by the arithmetic unit 151. Further, the arithmetic unit 151 determines the sign of each of the gradient parameters of the polygon edges AB, BC and AC. When the sign of the related gradient parameter is positive, the slope of the related edge is directed to the right-hand down. When the sign of the related gradient parameter is negative, the slope of the related edge is directed to the left-hand down. The gradient parameters and the signs for the polygon edges AB, BC and AC are stored in work buffers (not shown) of the control unit.
The vertical DDA unit 108 includes a storing part 155 having various registers which store the polygon data items, the differential values and the error values from the parameter computation unit 107. The registers of the storing part 155 correspond to the registers of the parameter computation unit 107, respectively. The vertical DDA unit 108 performs a vertical DDA processing according to the Bresenham algorithm, based on the polygon data items, the differential values, the error values and the gradient parameters from the parameter computation unit 107.
In the vertical DDA unit 108, a DDA operation unit 156, left-edge operation units 157 and right-edge operation units 158 produce leftmost endpoint data indicating a leftmost endpoint on the intersection of each scan line and the polygon left edge, and rightmost endpoint data indicating a rightmost endpoint on the intersection of each scan line and the polygon right edge. Specifically, the DDA operation unit 156 produces a y-coordinate (DSY) of the endpoints for each scan line. The left-edge operation units 157 produce an x-coordinate (DSX) of each leftmost endpoint on the left edge, a z-value (DSZ) of the leftmost endpoint, and a color value (DCL) of the leftmost endpoint. The right-edge operation units 158 produce an x-coordinate (DSX) of each rightmost endpoint on the right edge, a z-value (DSZ) of the rightmost endpoint, and a color value (DCL) of the rightmost endpoint.
For example, when the drawing processing for the polygon data with respect to a line L indicated in FIG. 27A is performed, the vertical DDA unit 108 produces the endpoint data indicating the leftmost and rightmost intersection points (indicated by white dots A and B in FIG. 27A) between the line L and the polygon left and right edges.
The horizontal DDA unit 109 receives the endpoint data (DSY, DSX, DSZ, DCL) of the leftmost endpoint related to the polygon left edge and the endpoint data (DSX) of the rightmost endpoint related to the polygon right edge from the vertical DDA unit 108. The horizontal DDA unit 109 includes a storing part 160 having various registers which store the above data items from the vertical DDA unit 108 as (SY, SXL, SZL, CLL, SXE). Further, the horizontal DDA unit 109 receives the differential values (dSZX, dCLX) from the storing part 155 of the vertical DDA unit 108 when they are needed.
In the horizontal DDA unit 109, a DDA operation unit 161, a DDA operation unit 162 and a DDA operation unit 163 produce a grid of pixel data defining an image of the polygon on the CRT screen, based on the endpoint data stored in the storing part 160. Specifically, the DDA operation unit 161 increments an x-coordinate (DSX) of an intermediate point starting from the x-coordinate (SXL) of the leftmost endpoint on the left edge and ending at the x-coordinate (SXE) of the rightmost endpoint on the right edge. The DDA operation unit 162 produces a z-value (DSZ) of the intermediate point when the x-coordinate (DSX) is incremented. The DDA operation unit 163 produces a color value (DCL) of the intermediate point when the x-coordinate (DSX) is incremented.
For example, when the drawing processing for dots with respect to a line L indicated in FIG. 27B is performed, the horizontal DDA unit 109 produces pixel data (DSX, DSZ, DCL) of each of intermediate points on the line L between the endpoints indicated by dots A and B in FIG. 27B. By repeating the above procedures for all the scan lines, the pixel data (SY, DSX, DSZ, DCL) is produced for each dot of the image by the horizontal DDA unit 109.
The pixel data produced by the horizontal DDA unit 109 is temporarily stored in the pixel buffer 110. After the temporary storing of the pixel data in the pixel buffer 110 is performed, the pixel data is supplied to the frame memory. Hence, the image of the polygon is displayed on the screen of the CRT monitor (not shown) based on the pixel data stored in the frame memory.
As described above, in the drawing processor 106 of FIG. 25, the vertical DDA unit 108 produces the leftmost endpoint data indicating the leftmost endpoint on the intersection of each scan line and the polygon left edge, and the rightmost endpoint data indicating the rightmost endpoint on the intersection of each scan line and the polygon right edge. The horizontal DDA unit 109 produces the pixel data of each of intermediate points on the scan line between the leftmost endpoint and the rightmost endpoint. By repeating the above procedures for all the scan lines, the pixel data for each dot of the image on the CRT screen is produced by the horizontal DDA unit 109. The z-value calculated by the drawing processors 99 and 106 may be used for a hidden-surface removal processing using the z-buffer algorithm.
In the case of the above-described drawing processor 106, the pixel data related to the polygon left and right edges are produced according to the Bresenham algorithm. As shown in FIG. 28A, when the polygon in the form of a triangle having one edge slightly inclined to the horizontal direction is dealt with by the drawing processor 106, the aliasing or jaggies of a corresponding image for the slightly-inclined edge can be minimized. In addition, as shown in FIG. 28B, when the polygon data in the form of a triangle having a sharp-pointed vertex is dealt with by the drawing processor 106, the aliasing or jaggies of a corresponding image around the sharp-pointed vertex can be minimized. Therefore, when an image of a polygon is displayed on the CRT screen based on the pixel data produced by the drawing processor 106, the aliasing of a corresponding image can be eliminated.
FIG. 29A and FIG. 29B are diagrams for explaining an operation performed by the drawing processor 99 of FIG. 21. In the drawing processor 99, the pipelining of the drawing processing is carried out by the vertical parameter computation unit 100, the vertical DDA unit 101, the horizontal parameter computation unit 102 and the horizontal DDA unit 103. The pixel data defining an image of the polygon on the CRT screen is produced by repetition of the drawing processing.
When the polygon in the form of a vertically elongated triangle, such as that shown in FIG. 29A, is dealt with, the run time of the horizontal DDA unit (H/DDA) 103 is reduced. However, the run time of the horizontal parameter computation unit (M/PC) 102 remains constant with no regard to the image drawing range. As shown in FIG. 29B, the waiting condition of the horizontal DDA unit (H/DDA) 103 frequently occurs at times indicated by "T1" in FIG. 29B. Hence, the drawing processor 99 is not effective in the drawing processing for a certain type of the polygon. The drawing processing 99 may cause a delay of the drawing processing when a certain type of the polygon is dealt with.
FIG. 30A and FIG. 30B are diagrams for explaining an operation performed by the drawing processor 106 of FIG. 25. In the drawing processor 106, the pipelining of the drawing processing is carried out by the parameter computation unit 107, the vertical DDA unit 108 and the horizontal DDA unit 109. The pixel data defining an image of a single polygon on the CRT screen is produced by repetition of the drawing processing.
When the polygon in the form of a horizontally elongated triangle, such as that shown in FIG. 30A, is dealt with, the run time of the vertical DDA unit (V/DDA) 108 is increased. As shown in FIG. 30B, the waiting condition of the horizontal DDA unit (H/DDA) 109 frequently occurs in such time periods as indicated by "T2" in FIG. 30B. Hence, the drawing processor 106 is not adequately effective in the drawing processing for a certain type of the polygon. The drawing processing 106 may cause a delay of the drawing processing when a certain type of the polygon is dealt with.